..:: Menu ::.. ..:: C++ Kurs : Zmienne i Stałe ::.. ..::Info i Reklamy::..

Umiemy już wypisywać tekst w konsoli i tworzyć własne funkcje. Niestety, nasze programy są na razie zupełnie bierne, jeżeli chodzi o kontakt z użytkownikiem. Nie ma on przy nich nic do roboty oprócz przeczytania komunikatu i wciśnięcia dowolnego klawisza. Najwyższy czas to zmienić. Napiszmy więc program, który będzie porozumiewał się z użytkownikiem. Może on wyglądać na przykład tak:

// Input – użycie zmiennych i strumienia wejścia
#include <string>
#include <iostream>
#include <conio.h>
void main()
{
std::string strImie;
std::cout << "Podaj swoje imie: ";
std::cin >> strImie;
std::cout << "Twoje imie to " << strImie << "." << std::endl;
getch();
}
Po kompilacji i uruchomieniu widać już wyraźny postęp w dziedzinie form komunikacji :) Nasza aplikacja oczekuje na wpisanie imienia użytkownika i potwierdzenie klawiszem ENTER, a następnie chwali się dopiero co zdobytą informacją.
Patrząc w kod programu widzimy kilka nowych elementów, zatem nie będzie niespodzianką, jeżeli teraz przystąpię do ich omawiania :D

Zmienne i ich typy

Na początek zauważmy, że program pobiera od nas pewne dane i wykonuje na nich operacje. Są to działania dość trywialne (jak wyświetlenie rzeczonych danych w niezmienionej postaci), jednak wymagają przechowania przez jakiś czas uzyskanej porcji informacji.
W językach programowania służą do tego zmienne.
Zmienna (ang. variable) to miejsce w pamięci operacyjnej, przechowujące pojedynczą wartość określonego typu. Każda zmienna ma nazwę, dzięki której można się do niej odwoływać.
Przed pierwszym użyciem zmienną należy zadeklarować, czyli po prostu poinformować kompilator, że pod taką a taką nazwą kryje się zmienna danego typu. Może to wyglądać choćby tak:
std::string strImie;
W ten sposób zadeklarowaliśmy w naszym programie zmienną typu std::string o nazwie strImie. W deklaracji piszemy więc najpierw typ zmiennej, a potem jej nazwę. Nazwa zmiennej może zawierać liczby, litery oraz znak podkreślenia w dowolnej kolejności. Nie można jedynie zaczynać jej od liczby. W nazwie zmiennej nie jest także dozwolony znak spacji.
Zasady te dotyczą wszystkich nazw w C++ i, jak sądzę, nie szczególnie trudne do przestrzegania. Z brakiem spacji można sobie poradzić używając w jej miejsce podkreślenia (jakas_zmienna) lub rozpoczynać każdy wyraz z wielkiej litery (JakasZmienna).
W jednej linijce możemy ponadto zadeklarować kilka zmiennych, oddzielając ich nazwy przecinkami. Wszystkie będą wtedy przynależne do tego samego typu.
Typ określa nam rodzaj informacji, jakie można przechowywać w naszej zmiennej. Mogą to być liczby całkowite, rzeczywiste, tekst (czyli łańcuchy znaków, ang. strings), i tak dalej. Możemy także sami tworzyć własne typy zmiennych, czym zresztą niedługo się zajmiemy. Na razie jednak powinniśmy zapoznać się z dość szerokim wachlarzem typów standardowych, które to obrazuje niniejsza tabelka:
nazwa typu opis
int liczba całkowita (dodatnia lub ujemna)
float liczba rzeczywista (z częścią ułamkową)
bool wartość logiczna (prawda lub fałsz)
char pojedynczy znak
std::string łańcuch znaków (tekst)
Używając tych typów możemy zadeklarować takie zmienne jak:
int nLiczba; // liczba całkowita, np. 45 czy 12 + 89
float fLiczba; // liczba rzeczywista (1.4, 3.14, 1.0e-8 itp.)
std::string strNapis; // dowolny tekst
Być może zauważyłeś, że na początku każdej nazwy widnieje tu przedrostek, np. str czy n. Jest to tak zwana notacja węgierska; pozwala ona m.in. rozróżnić typ zmiennej na podstawie nazwy. Zapis ten stał się bardzo popularny, szczególnie wśród programistów języka C++ - spora ich część uważa, że znacznie poprawia on czytelność kodu. Szerszy opis notacji węgierskiej możesz znaleźć w Dodatku A.

Strumień wejścia

Cóż by nam jednak było po zmiennych, jeśli nie mieliśmy skąd wziąć dla nich danych?… Prostych sposobem uzyskania ich jest prośba do użytkownika o wpisanie odpowiednich informacji z klawiatury. Tak też czynimy w aktualnie analizowanym programie – odpowiada za to kod:
std::cin >> strImie;
Wygląda on podobnie do tego, który jest odpowiedzialny za wypisywanie tekstu w konsoli. Wykonuje jednak czynność dokładnie odwrotną: pozwala na wprowadzenie sekwencji znaków i zapisuje ją do zmiennej strImie.
std::cin symbolizuje strumień wejścia, który zadaniem jest właśnie pobieranie wpisanego przez użytkownika tekstu. Następnie kieruje go (co obrazują „strzałki” >>) do wskazanej przez nas zmiennej.
Zauważmy, że w naszej aplikacji kursor pojawia się w tej samej linijce, co komunikat „Podaj swoje imię”. Nietrudno domyśleć się, dlaczego – nie umieściliśmy po nim std::endl, wobec czego nie jest wykonywane przejście do następnego wiersza.
Strumienie wejścia i wyjścia stanowią razem nierozłączną parę mechanizmów, które umożliwiają nam pełną swobodę komunikacji z użytkownikiem w aplikacjach konsolowych.

Stałe

Stałe są w swoim przeznaczeniu bardzo podobne do zmiennych - tyle tylko że są… niezmienne :)) Używamy ich, aby nadać znaczące nazwy jakimś niezmieniającym się wartościom w programie.
Stała to niezmienna wartość, której nadano nazwę celem łatwego jej odróżnienia od innych, często podobnych wartości, w kodzie programu.
Jej deklaracja, na przykład taka:
const int STALA = 10;
przypomina nieco sposób deklarowania zmiennych – należy także podać typ oraz nazwę. Słówko const (ang. constant – stała) mówi jednak kompilatorowi, że ma do czynienia ze stałą, dlatego oczekuje również podania jej wartości. Wpisujemy ją po znaku równości =. W większości przypadków stałych używamy do identyfikowania liczb - zazwyczaj takich, które występują w kodzie wiele razy i mają po kilka znaczeń w zależności od kontekstu. Pozwala to uniknąć pomyłek i poprawia czytelność programu.
Stałe mają też tę zaletę, że ich wartości możemy określać za pomocą innych stałych, na przykład:
const int NETTO = 2000;
const int PODATEK = 22;
const int BRUTTO = NETTO + NETTO * PODATEK / 100;
Jeżeli kiedyś zmieni się jedna z tych wartości, to będziemy musieli dokonać zmiany tylko w jednym miejscu kodu – bez względu na to, ile razy użyliśmy danej stałej w naszym programie. I to jest piękne :)
Inne przykłady stałych:
const int DNI_W_TYGODNIU = 7; // :-)
const float PI = 3.141592653589793; // w końcu to też stała!
const int MAX_POZIOM = 50; // np. w grze RPG
<--- Wstecz | Dalej --->

   
©Copyright by garUs